package com.imax.center.service;

import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * 通用功能服务接口
 */
public interface CommonService {
    /**
     * 获取行政区划边界GeoJSON数据
     *
     * @param areaCode 行政区划代码
     * @return GeoJSON数据
     */
    Object getAreaBoundary(String areaCode);
    
    /**
     * 保存图片
     *
     * @param file 上传的图片文件
     * @param fileName 图片名称
     * @return 图片保存路径
     * @throws IOException 如果保存过程中发生IO异常
     */
    String saveImage(MultipartFile file, String fileName) throws IOException;

    /**
     * 保存图片且绘制元素
     *
     * @param file 上传的图片文件
     * @param map 绘制内容
     * @param fileName 文件名
     * @return 图片保存路径
     * @throws IOException 如果保存过程中发生IO异常
     */
    String saveImageDrawEle(MultipartFile file, Map<String, Object> map, String fileName) throws IOException;
    
    /**
     * 根据路径获取图片输入流
     *
     * @param imagePath 图片路径
     * @return 图片输入流，如果图片不存在则返回null
     * @throws IOException 如果获取过程中发生IO异常
     */
    InputStream getImageInputStream(String imagePath) throws IOException;

    /**
     * 根据文件路径删除文件
     *
     * @param filePath 文件路径（可以是相对路径或绝对路径）
     * @return 删除结果，true表示删除成功，false表示文件不存在或删除失败
     */
    boolean deleteFile(String filePath);

    /**
     * 获取默认图片上传目录下所有文件名（包含后缀）
     * @return 文件名列表
     */
    List<String> listAllImageFiles();
} 